#ifndef _LCD_LCD_H_
#define _LCD_LCD_H_

namespace lcd
{

class abstract_lcd
{
public:

  virtual int get_nb_lines(void) const = 0;
  virtual int get_nb_columns(void) const = 0;

  virtual void set_backlight(bool value) = 0;

  virtual void print(int lin, int col, char const* val) = 0;
  virtual void print(int lin, int col, int val) = 0;
  virtual void print(int lin, int col, unsigned val) = 0;
  virtual void print(int lin, int col, int long val) = 0;
  virtual void print(int lin, int col, unsigned long val) = 0;
  virtual void print(int lin, int col, float val) = 0;
  virtual void print(int lin, int col, double val) = 0;
};

} // lcd

#endif // _LCD_LCD_H_
